package fr.fitec.qcmPlus.tools;

import org.jasypt.util.password.ConfigurablePasswordEncryptor;

/**
 * Cette classe propose une méthode statique permettant d'encrypter un mot de passe
 * de façon non réversible (hash).
 * La library Jasypt est utilisée.
 */
public final class PasswordEncryptor
{
    private PasswordEncryptor() {};
    
    private static final ConfigurablePasswordEncryptor encryptor;
    static
    {
        encryptor = new ConfigurablePasswordEncryptor();
        encryptor.setPlainDigest(true);
        encryptor.setAlgorithm("MD5");
        encryptor.setStringOutputType("hexadecimal");
    }
    
    /**
     * Cette méthode encrypte une chaîne de texte de façon non réversible
     * @param text le texte à encrypter
     * @return le texte encrypté
     */
    public static String encrypt(final String text)
    {
        return encryptor.encryptPassword(text).toUpperCase();
    }
}
